SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE Proc [dbo].[SP_TXMVTO_CNTB_I01]        
/*-------------------------------------------------------------------*/                    
/*----- Empresa           : OFISIS S.A.                          ----*/                    
/*----- Cliente           : OFISIS S.A.                          ----*/                    
/*----- Sistema           : Contabilidad                         ----*/                    
/*----- Modulo            : Empresa                              ----*/                    
/*----- Programa          : Mantenimiento de vouchers            ----*/                    
/*----- Nombre            : SP_TXMVTO_CNTB_I01                   ----*/                    
/*----- Script            : TXMVTO_CNTB                          ----*/                    
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/                    
/*----- Fecha             : 03/07/1997                           ----*/                    
/*----- Base de Datos     : MS SQL Server                        ----*/                    
/*----- Version BD        : 7.0                                  ----*/                    
/*-------------------------------------------------------------------*/                    
/*-------------------------------------------------------------------*/                  
/*----- Modificado 1 por : percy garcia                          ----*/                  
/*----- Fecha Modifica   : 05/06/2004                            ----*/                  
/*----- Detalle Modifica : usuario creacion y modif              ----*/                  
/*-------------------------------------------------------------------*/                  
/*-------------------------------------------------------------------*/                  
/*----- Modificado 2 por : percy garcia                          ----*/                  
/*----- Fecha Modifica   : 04/09/2006                            ----*/                  
/*----- Detalle Modifica : SE AUMENTO NUEVO CAMPO FECHA DE PAGO  ----*/                  
/*-------------------------------------------------------------------*/                  
/*-------------------------------------------------------------------*/                  
/*----- Modificado 3 por : LMGP                                  ----*/                  
/*----- Fecha Modifica   : 16/09/2008                            ----*/                  
/*----- Detalle Modifica : SE A?ADIO INSERCION A ST_COMP         ----*/                  
/*-------------------------------------------------------------------*/                  
/*-------------------------------------------------------------------*/                    
/*----- Drop proc SP_TXMVTO_CNTB_I01                             ----*/                    
/*----- Grant all on SP_TXMVTO_CNTB_I01 to PUBLIC                ----*/                    
/*----- SP_TXMVTO_CNTB_I01                                       ----*/                    
/*-------------------------------------------------------------------*/                    
            
as                    
Declare                    
            
@ISCO_EMPR TD_VC_002,                    
@ISCO_USUA          TD_VC_008,              
@IDFE_USUA          TD_DT_001,              
@ISCO_UNID_CNTB TD_VC_003,                    
@INNU_CNTB_EMPR TD_IN_001_CONT,                    
@ISCO_OPRC_CNTB TD_VC_003,                    
@INNU_ANNO TD_IN_004_ANNO,                    
@INNU_MESE TD_IN_002_MESE,                    
@ISNU_ASTO TD_VC_010,                    
@INNU_SECU TD_IN_002,                    
@IDFE_ASTO_CNTB TD_DT_001,                    
@ISCO_CNTA_EMPR TD_VC_020_CNTA,                     
@ISST_GENE TD_VC_003,                    
@ISTI_AUXI_EMPR TD_VC_001,                    
@ISCO_AUXI_EMPR TD_VC_020,                    
@ISTI_DOCU TD_VC_003,                    
@ISNU_DOCU TD_VC_020,                     
@IDFE_DOCU TD_DT_001,                     
@ISTI_OPER TD_VC_003,                    
@ISCO_MONE TD_VC_003,                     
@ISTI_CAMB TD_VC_003,                    
@INFA_CAMB TD_NU_015_006,                    
@INFA_CAMB_DIAR TD_NU_015_006,                    
@INIM_MVTO_ORIG TD_NU_016_004,                     
@ISCO_ORDE_SERV TD_VC_020,                     
@ISDE_GLOS TD_VC_100,                    
@ISTI_DOCU_REFE TD_VC_003,                    
@ISNU_DOCU_REFE TD_VC_020,                    
@ISNO_GIRA TD_VC_100,                    
@IDFE_PROG_CHEQ TD_DT_001,                    
@IDFE_ENTR_CHEQ TD_DT_001,                    
@ISSI_MVTO_CNTB TD_VC_003,                    
@IDFE_DOCU_VENC TD_DT_001,                    
@IDFE_PAGO TD_DT_001,                    
@IDFE_DOCU_REFE TD_DT_001,                    
@INIM_MVTO_RETE TD_NU_016_004,                    
@INIM_MVTO_CNTB TD_NU_016_004,                     
@ISTI_DOCU_DETR TD_VC_003,                     
@ISNU_DOCU_DETR TD_VC_020,                     
@IDFE_DOCU_DETR TD_DT_001,                      
@ISCO_MEPA  TD_VC_003,            
@ISST_EXON_INAF TD_VC_003,      
@ISST_COMP TD_VC_003,      
--WITH ENCRYPTION                    
@INNU_ULTI_ASTO TD_IN_001,                    
@UL_CHEQ_GIRA TD_IN_001,                    
@ISST_GENE_ASTO TD_VC_003,                    
@VSST_CNTA_CAMB   TD_VC_003,                    
@VNFA_CAMB_DIAR TD_NU_015_006    
            
            
Select Top 1 @ISCO_EMPR = CO_EMPR,                    
@ISCO_USUA = CO_USUA,              
@IDFE_USUA = FE_USUA,              
@ISCO_UNID_CNTB = CO_UNID_CNTB,            
@INNU_CNTB_EMPR = NU_CNTB_EMPR,            
@ISCO_OPRC_CNTB = CO_OPRC_CNTB,                    
@INNU_ANNO = NU_ANNO,            
@INNU_MESE = NU_MESE,                    
@ISNU_ASTO = NU_ASTO,            
@INNU_SECU = NU_SECU,            
@IDFE_ASTO_CNTB = FE_ASTO_CNTB,                    
@ISCO_CNTA_EMPR = CO_CNTA_EMPR,                     
@ISST_GENE = ST_GENE,                    
@ISTI_AUXI_EMPR = TI_AUXI_EMPR,                    
@ISCO_AUXI_EMPR = CO_AUXI_EMPR,                    
@ISTI_DOCU = TI_DOCU,                    
@ISNU_DOCU = NU_DOCU,                     
@IDFE_DOCU = FE_DOCU,            
@ISTI_OPER = TI_OPER,            
@ISCO_MONE = CO_MONE,                     
@ISTI_CAMB = TI_CAMB,                     
@INFA_CAMB = FA_CAMB,                    
@INFA_CAMB_DIAR = FA_CAMB_DIAR,                    
@INIM_MVTO_ORIG = IM_MVTO_ORIG,                     
@ISCO_ORDE_SERV = CO_ORDE_SERV,                     
@ISDE_GLOS = DE_GLOS,                    
@ISTI_DOCU_REFE = TI_DOCU_REFE,                    
@ISNU_DOCU_REFE = NU_DOCU_REFE,                    
@ISNO_GIRA = NO_GIRA,                    
@IDFE_PROG_CHEQ = FE_PROG_CHEQ,                    
@IDFE_ENTR_CHEQ = FE_ENTR_CHEQ,                    
@ISSI_MVTO_CNTB = SI_MVTO_CNTB,                    
@IDFE_DOCU_VENC = FE_DOCU_VENC,                    
@IDFE_PAGO = FE_PAGO,                    
@IDFE_DOCU_REFE = FE_DOCU_REFE,                    
@INIM_MVTO_RETE = IM_MVTO_RETE,                    
@INIM_MVTO_CNTB = IM_MVTO_CNTB,                     
@ISTI_DOCU_DETR = TI_DOCU_DETR,                     
@ISNU_DOCU_DETR = NU_DOCU_DETR,                     
@IDFE_DOCU_DETR = FE_DOCU_DETR,                      
@ISCO_MEPA  = CO_MEPA,       
@ISST_EXON_INAF = ST_EXON_INAF,       
@ISST_COMP = ST_COMP          
From #TWPARA_EMAA            
                                                                      
If @IDFE_PROG_CHEQ = ''                    
 Select @IDFE_PROG_CHEQ = NULL                    
If @IDFE_ENTR_CHEQ = ''                    
 Select @IDFE_ENTR_CHEQ = NULL                    
                        
If @ISCO_ORDE_SERV = ''                    
 Select @ISCO_ORDE_SERV  = NULL                                                                                                      
                    
If @ISTI_AUXI_EMPR = ''                    
 Select @ISTI_AUXI_EMPR  = NULL                    
                     
If @ISCO_AUXI_EMPR = ''                    
   Select @ISCO_AUXI_EMPR = NULL                    
                                    
If @ISTI_DOCU = ''                    
 Select @ISTI_DOCU = NULL                   
                                              
If @ISNU_DOCU = ''                    
 Select @ISNU_DOCU = NULL                    
                                                                                                   
If @IDFE_DOCU = ''                    
 Select @IDFE_DOCU = NULL                    
                                   
If @INFA_CAMB IS NULL                    
 Select @INFA_CAMB = 1.000                    
          
If @ISCO_MEPA = ''          
 Select @ISCO_MEPA = NULL          
    
If @ISST_EXON_INAF = ''          
 Select @ISST_EXON_INAF = NULL          
          
If @ISST_COMP = ''          
 Select @ISST_COMP = NULL          
    
Select @VNFA_CAMB_DIAR = @INFA_CAMB_DIAR              
                    
Select @ISST_GENE_ASTO = ST_GENE_ASTO                    
From TTCNTB_EMPR                    
Where CO_EMPR = @ISCO_EMPR and                     
        NU_CNTB_EMPR = @INNU_CNTB_EMPR                    
Begin Tran SP_TXMVTO_CNTB_I01 If @INNU_SECU = 1                    
  If @ISST_GENE_ASTO = 'GEN'                    
   Begin                    
    Select @INNU_ULTI_ASTO = IsNull(NU_ULTI_ASTO,0)                    
    From TCFECH_PROC                    
  Where CO_EMPR = @ISCO_EMPR                    
    and NU_CNTB_EMPR = @INNU_CNTB_EMPR                    
    and CO_UNID_CNTB = @ISCO_UNID_CNTB                    
    and CO_OPRC_CNTB = @ISCO_OPRC_CNTB                    
    and NU_ANNO = @INNU_ANNO                    
    and NU_MESE = @INNU_MESE                     
  If @INNU_ULTI_ASTO + 1 != Convert(int, @ISNU_ASTO)                   
   Begin                    
  Select @ISNU_ASTO = Convert( varchar(10), @INNU_ULTI_ASTO + 1 )                    
  Select @ISNU_ASTO = STUFF('0000000000', 11-datalength( @ISNU_ASTO ), datalength(@ISNU_ASTO ), @ISNU_ASTO )                    
   End                    
                              
 Update TCFECH_PROC                    
 Set NU_ULTI_ASTO = @INNU_ULTI_ASTO + 1                    
 Where CO_EMPR = @ISCO_EMPR                    
 and NU_CNTB_EMPR = @INNU_CNTB_EMPR                    
 and CO_UNID_CNTB = @ISCO_UNID_CNTB                    
 and CO_OPRC_CNTB = @ISCO_OPRC_CNTB                    
 and NU_ANNO = @INNU_ANNO                    
 and NU_MESE = @INNU_MESE                    
End                    
                           
If (@ISTI_DOCU = 'CHE' or @ISTI_DOCU = 'CHQ' or @ISTI_DOCU = 'CH') And (@ISST_GENE ='GEN')                    
Begin                    
 Select @UL_CHEQ_GIRA = NU_ULTI_CHEQ                    
 From TTCNTA_BNCO                    
 Where CO_EMPR = @ISCO_EMPR                    
 and CO_CNTA_EMPR = @ISCO_CNTA_EMPR                    
                     
 Select  @UL_CHEQ_GIRA = isnull(@UL_CHEQ_GIRA, 0) + 1                    
 Select  @ISNU_DOCU = convert(char(20), @UL_CHEQ_GIRA)                    
                     
 Update TTCNTA_BNCO                    
 set NU_ULTI_CHEQ = convert(int, @ISNU_DOCU)                    
 Where CO_EMPR = @ISCO_EMPR                    
 and CO_CNTA_EMPR = @ISCO_CNTA_EMPR                    
End                    
              
 if @VNFA_CAMB_DIAR IS NULL                         
  Begin              
   Select @VSST_CNTA_CAMB = ST_CNTA_CAMB                    
   from TMPLAN_EMPR                    
   where CO_EMPR =  @ISCO_EMPR                    
   and   NU_ANNO = 9999                    
   and   CO_CNTA_EMPR = @ISCO_CNTA_EMPR                    
              
   if @VSST_CNTA_CAMB = 'COM'                    
     Select @VNFA_CAMB_DIAR = Isnull(Max(FA_CMPR_OFIC), 1.000000)              
     from TCFACT_CAMB                    
     where CO_MONE NOT IN (Select CO_MONE from TTCNTB_EMPR                     
                           where CO_EMPR = @ISCO_EMPR               
      and NU_CNTB_EMPR = @INNU_CNTB_EMPR)                    
     and FE_CAMB = @IDFE_ASTO_CNTB                    
              
   if @VSST_CNTA_CAMB = 'VEN'                    
     Select  @VNFA_CAMB_DIAR = Isnull(Max(FA_VNTA_OFIC), 1.000000)              
     from TCFACT_CAMB                    
     where CO_MONE NOT IN (Select CO_MONE from TTCNTB_EMPR                     
                           where CO_EMPR = @ISCO_EMPR               
      and NU_CNTB_EMPR = @INNU_CNTB_EMPR)                    
     and FE_CAMB = @IDFE_ASTO_CNTB                    
End                     
                    
Insert Into TXMVTO_CNTB                    
(CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO,                
 NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                    
 FE_DOCU, FE_DOCU_VENC, FE_PAGO, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG,                    
 IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ,                    
 FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG , CO_OPRC_ORIG, NU_ASTO_ORIG,                    
 ST_OTRS, NU_PROC, NU_PROC_SECU, ST_GEST, ST_REDO, IM_MVTO_RETE, TI_DOCU_DETR, NU_DOCU_DETR, FE_DOCU_DETR,                    
 FE_USUA_CREA, CO_USUA_CREA, FE_USUA_MODI, CO_USUA_MODI, CO_MEPA, ST_EXON_INAF,    
 ST_COMP)                    
Values                    
(@ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE, @ISNU_ASTO,                     
 @INNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @ISTI_AUXI_EMPR, @ISCO_AUXI_EMPR, @ISTI_DOCU, @ISNU_DOCU,                    
 @IDFE_DOCU, @IDFE_DOCU_VENC, @IDFE_PAGO, @ISTI_CAMB, @ISCO_MONE, @INFA_CAMB, @VNFA_CAMB_DIAR, @ISTI_OPER, @INIM_MVTO_ORIG,                     
 @INIM_MVTO_CNTB, @ISDE_GLOS, @ISTI_DOCU_REFE, @ISNU_DOCU_REFE, @IDFE_DOCU_REFE, @ISNO_GIRA,                     
 @IDFE_ENTR_CHEQ, @IDFE_PROG_CHEQ, @ISCO_ORDE_SERV, @ISSI_MVTO_CNTB,                     
 NULL, NULL, NULL, NULL, NULL, NULL, 'N', 'N', @INIM_MVTO_RETE, @ISTI_DOCU_DETR, @ISNU_DOCU_DETR, @IDFE_DOCU_DETR,                    
 @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, @ISCO_USUA , @ISCO_MEPA, @ISST_EXON_INAF,     
 @ISST_COMP)                    
                     
 If @@ERROR != 0                         
  Begin                     
   Rollback Transaction                    
  Return                    
  End                    
Commit Tran SP_TXMVTO_CNTB_I01                    
Select @ISNU_ASTO, @ISTI_DOCU, @ISNU_DOCU                    
Return                    
/*----------------------------------------- Fin ----------------------------------------*/                  

GO
